]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
4 years agologinManager: Make API promise-based
Florian Müllner [Thu, 23 Jun 2022 13:45:44 +0000 (15:45 +0200)]
loginManager: Make API promise-based

The LoginManager abstraction is still mostly callback-based, not
least because the methods are thin wrappers around logind D-Bus
calls.

However as gjs' dbus wrapper now generates promised-based wrappers
as well, we can implement a proper async API just as naturally.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>

4 years agostatus/location: Make AppAuthorizer async
Florian Müllner [Fri, 8 Jul 2022 03:24:18 +0000 (05:24 +0200)]
status/location: Make AppAuthorizer async

Instead of passing a callback through a series of methods and
callbacks, change authorize() to return its result asynchronously.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>

4 years agoautorunManager: Promisify ContentTypeDiscoverer
Florian Müllner [Thu, 23 Jun 2022 15:02:55 +0000 (17:02 +0200)]
autorunManager: Promisify ContentTypeDiscoverer

Thanks to recent gjs changes - namely the ability to promisify
interface prototypes and promise-based D-Bus wrappers - we can
modernize the ContentTypeDiscoverer API to use an async function
instead of a callback.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>

4 years agosearch: Use async functions instead of callbacks
Florian Müllner [Thu, 23 Jun 2022 16:13:36 +0000 (18:13 +0200)]
search: Use async functions instead of callbacks

Our search provider API has to be asynchronous to support remote
providers. It doesn't have to be based on callbacks though, now
that async functions provide a nicer alternative.

That is particularly true after gjs's D-Bus wrapper started to
generate promise-based method variants.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>

4 years agoremoteSearch: Stop using callback to return loaded providers
Florian Müllner [Thu, 23 Jun 2022 16:17:57 +0000 (18:17 +0200)]
remoteSearch: Stop using callback to return loaded providers

Provider loading has been synchronous since 2013, so we can
just as well return the results directly instead of passing
them to a callback.

Even if we returned to asynchronous loading in the future,
we wouldn't want to use a callback, but make the function
itself async.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>

4 years agoobjectManager: Simplify fetching of remote objects
Florian Müllner [Fri, 8 Jul 2022 06:52:18 +0000 (08:52 +0200)]
objectManager: Simplify fetching of remote objects

Instead of maintaining an inhibitor count, fetch objects and
their interfaces asynchronously and wait for all promises to
settle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>

4 years agoobjectManager: Use non-legacy style
Florian Müllner [Fri, 8 Jul 2022 03:38:39 +0000 (05:38 +0200)]
objectManager: Use non-legacy style

There are a couple of places left where we still use the old
indentation style, update them before making code changes.

After that, there are only a couple of non-type-safe comparisons
left of legacy style, so change those as well while we're at it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2344>

4 years agoUpdate Portuguese translation
Hugo Carvalho [Mon, 1 Aug 2022 18:18:11 +0000 (18:18 +0000)]
Update Portuguese translation

4 years agoUpdate Catalan translation
Jordi Mas [Mon, 1 Aug 2022 16:46:40 +0000 (18:46 +0200)]
Update Catalan translation

4 years agoUpdate Russian translation
Aleksandr Melman [Mon, 1 Aug 2022 15:16:16 +0000 (15:16 +0000)]
Update Russian translation

4 years agostatus/remote-access: Split out screen sharing indicator
Florian Müllner [Wed, 27 Jul 2022 10:29:26 +0000 (12:29 +0200)]
status/remote-access: Split out screen sharing indicator

The latest mockups move the screen sharing indicator into a
separate control, similar to the existing indicator for built-in
screen recordings.

As this removes the submenu and only keeps the top bar icon (for
external screen recordings), this will smooth the transition to
quick settings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/powerProfiles: Remember last selected non-default profile
Florian Müllner [Fri, 29 Jul 2022 18:00:18 +0000 (20:00 +0200)]
status/powerProfiles: Remember last selected non-default profile

When we move to quick settings, this will allow us to toggle
between two profiles even where more profiles are available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/location: Remove submenu
Florian Müllner [Wed, 27 Jul 2022 02:38:21 +0000 (04:38 +0200)]
status/location: Remove submenu

Location services aren't expected to change frequently: They are
either disabled globally, or permissions are granted on a per-app
basis.

This is less of a concern while the setting is exposed in a small
submenu, but as we moving to quick settings, it does not deserve
the prominence of a quick toggle. Just the top bar icon and Settings'
privacy panel should be enough.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/volume: Merge VolumeMenu into indicator
Florian Müllner [Sat, 30 Jul 2022 11:58:35 +0000 (13:58 +0200)]
status/volume: Merge VolumeMenu into indicator

Other than connecting stream when necessary, the volume menu
only forwards slider events to the indicator, and method calls
from the indicator to the appropriate slider.

Just cut our the middle-man and let the indicator handle the
slider items directly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/brightness: Improve proxy error handling
Florian Müllner [Sat, 30 Jul 2022 11:07:31 +0000 (13:07 +0200)]
status/brightness: Improve proxy error handling

On error, we currently print a warning and bail out early. That
means we don't hide the slider, despite it being non-functional
without the proxy.

Fix this by making sure _sync() is called in any case. While at
it, use an appropriate log level for the warning message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/brightness: Hide when proxy has no owner
Florian Müllner [Sat, 30 Jul 2022 12:34:12 +0000 (14:34 +0200)]
status/brightness: Hide when proxy has no owner

Properties are null while a proxy has no owner. Javascript helpfully
coerces that into `Number(null)` (a.k.a. 0), so we end up with a
broken slider.

Explicitly check that the value is an integer before doing the
comparison to catch that case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/bluetooth: Split out BtClient object
Florian Müllner [Thu, 28 Jul 2022 13:00:45 +0000 (15:00 +0200)]
status/bluetooth: Split out BtClient object

The new class abstracts away the nitty-gritty of bluetooth- and
airplane-mode handling, and exposes just what the UI needs.

This will become more important with quick settings, where there's
a stronger separation between top bar icon and quick toggle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/bluetooth: Use promise to initialize proxy
Florian Müllner [Fri, 29 Jul 2022 10:57:50 +0000 (12:57 +0200)]
status/bluetooth: Use promise to initialize proxy

There's no good reason for waiting for the proxy to be initialized
to connect signals. In fact, connecting the signal beforehand
ensures that the handler is in place when the proxy fetches the
properties, so we don't have to call the handler explicitly.

That in turn allows us to rely on the signal parameters to only process
changed properties.

To achieve that, construct the proxy manually, and then initialize
it asynchronously in a Promise.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agostatus/nightLight: Use promise to initialize proxy
Florian Müllner [Sun, 24 Jul 2022 18:12:54 +0000 (20:12 +0200)]
status/nightLight: Use promise to initialize proxy

There's no good reason for waiting for the proxy to be initialized
to connect signals. In fact, connecting the signal beforehand
ensures that the handler is in place when the proxy fetches the
properties, so we don't have to call the handler explicitly.

That in turn will allow us in a follow-up to rely on the signal
parameters to only process changed properties.

To achieve that, construct the proxy manually, and then initialize
it asynchronously in a Promise.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2391>

4 years agoextensions-app: Use new add_action_entries() override
Florian Müllner [Wed, 6 Jul 2022 12:16:38 +0000 (14:16 +0200)]
extensions-app: Use new add_action_entries() override

g_action_map_add_entries() is a C convenience API that isn't
introspectable, but gjs recently added a JS override for it.

Use it to save some boilerplate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2371>

4 years agobuild: Bump gjs requirement
Florian Müllner [Wed, 6 Jul 2022 13:22:37 +0000 (15:22 +0200)]
build: Bump gjs requirement

gjs already has some nice improvements lined up for the upcoming
release, most prominently promised-based D-Bus wrappers.

Bump the requirement to start using those.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2371>

4 years agoci: Update mutter image
Florian Müllner [Fri, 8 Jul 2022 22:05:03 +0000 (00:05 +0200)]
ci: Update mutter image

This pulls in an up-to-date gjs, which will allow us to bump the
version requirement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2371>

4 years agoci: Don't define image globally
Florian Müllner [Sun, 10 Jul 2022 22:02:53 +0000 (00:02 +0200)]
ci: Don't define image globally

This has been deprecated in favor of defining the default image
in the default section.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2371>

4 years agoci: Instruct gitlab to checkout submodules
Florian Müllner [Sun, 10 Jul 2022 18:27:00 +0000 (20:27 +0200)]
ci: Instruct gitlab to checkout submodules

By default, gitlab skips checking out of submodules. So far this
didn't matter to us, as meson will initialize submodules as part
of setup.

It no longer does for the dist command however, and as we run it
from a separate job where the submodule checkout isn't preserved,
the job breaks with recent meson versions.

Fix this by instructing gitlab to checkout the submodule for all
jobs that need it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2371>

4 years agogit: Use relative URL for external submodule
Florian Müllner [Sun, 10 Jul 2022 20:12:37 +0000 (22:12 +0200)]
git: Use relative URL for external submodule

Gitlab recommends using relative URLs for submodules on the same
server[0], so do that.

[0] https://docs.gitlab.com/ee/ci/git_submodules.html

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2371>

4 years agoUpdate Galician translation
Fran Dieguez [Mon, 1 Aug 2022 07:02:18 +0000 (07:02 +0000)]
Update Galician translation

4 years agooverviewControls: Minor style fix
Ivan Molodetskikh [Mon, 1 Aug 2022 00:41:00 +0000 (17:41 -0700)]
overviewControls: Minor style fix

Since I'm forced to fix the spaces for the workAreaBox change, might as
well fix them in the nearby lines.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2395>

4 years agoControlsManagerLayout: Cache workAreaBox
Ivan Molodetskikh [Sun, 31 Jul 2022 04:59:33 +0000 (21:59 -0700)]
ControlsManagerLayout: Cache workAreaBox

Allocation runs every frame during the overview animations, so we want
to do as little work there as possible. Cache the work area box
computation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2395>

4 years agoControlsManagerLayout: Use primaryMonitor
Ivan Molodetskikh [Sun, 31 Jul 2022 04:40:39 +0000 (21:40 -0700)]
ControlsManagerLayout: Use primaryMonitor

ControlsManager already hardcodes primaryMonitor, so do it here too to
skip an expensive search.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2395>

4 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sun, 31 Jul 2022 16:52:35 +0000 (16:52 +0000)]
Update Basque translation

4 years agoUpdate Abkhazian translation
Nart Tlisha [Thu, 28 Jul 2022 19:28:37 +0000 (19:28 +0000)]
Update Abkhazian translation

4 years agoextensionSystem: Check if mode is supported when loading
Alessandro Bono [Thu, 14 Jul 2022 13:37:42 +0000 (15:37 +0200)]
extensionSystem: Check if mode is supported when loading

Don't try to initialize and then enable an extension if it is not supported
in the current mode. Otherwise the extension will not be initialized, and the
initial ERROR state is not cleared. Once it is in ERROR state we can't enable
it anymore when we switch mode. Instead, leave the extension in INITIALIZED
state, so that it will be initialized when appropriate. This happens for
extensions that support the unlock-dialog mode but not the user mode.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2378>

4 years agoscreencast: Use the same format for screencasts and screenshot file names
Emmanuele Bassi [Fri, 20 May 2022 16:40:35 +0000 (17:40 +0100)]
screencast: Use the same format for screencasts and screenshot file names

Screenshots use `%Y-%m-%d %H-%M-%S` for the timestamp, which has the
advantage of allowing proper lexicographical sorting.

The screencast file name pattern, on the other hand, uses
locale-dependent expansions, which break sorting based on file name, and
introduces the chance of potentially invalid characters on different
file systems.

Fixes: #5115
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2300>

4 years agostatus/powerProfiles: Use CHECK ornament
Florian Müllner [Sat, 23 Jul 2022 15:14:02 +0000 (17:14 +0200)]
status/powerProfiles: Use CHECK ornament

The design team prefers them over dots in this context now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2389>

4 years agostatus/powerProfiles: Add image to menu items
Florian Müllner [Sat, 23 Jul 2022 15:13:22 +0000 (17:13 +0200)]
status/powerProfiles: Add image to menu items

We want the icons when we move to quick settings:

https://gitlab.gnome.org/Teams/Design/os-mockups/-/raw/master/system-status/quick-settings/quick-toggles-mvp.png

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2389>

4 years agopopupMenu: Append ornament in image menu items
Florian Müllner [Sat, 23 Jul 2022 15:04:57 +0000 (17:04 +0200)]
popupMenu: Append ornament in image menu items

Having both image and ornament in front of the label looks odd.

Keep the image where it is, and move the ornament to the end.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2389>

4 years agostatus/powerProfiles: Split updating profiles from sync
Florian Müllner [Fri, 22 Jul 2022 16:46:09 +0000 (18:46 +0200)]
status/powerProfiles: Split updating profiles from sync

Calling the split out code where necessary seems cleaner than
calling it conditionally as part of the general sync().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2389>

4 years agostyle: Make menuitems less bright when in checked state
Sam Hewitt [Fri, 22 Jul 2022 18:41:45 +0000 (16:11 -0230)]
style: Make menuitems less bright when in checked state

Fixes #5665

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2388>

4 years agoAdd Abkhazian translation
Nart Tlisha [Tue, 26 Jul 2022 10:44:06 +0000 (10:44 +0000)]
Add Abkhazian translation

4 years agoUpdate Catalan translation
Jordi Mas [Sun, 24 Jul 2022 11:00:20 +0000 (13:00 +0200)]
Update Catalan translation

4 years agoUpdate Georgian translation
Zurab Kargareteli [Sun, 24 Jul 2022 05:32:25 +0000 (05:32 +0000)]
Update Georgian translation

4 years agorfkill: Consider HasAirplaneMode
Florian Müllner [Mon, 18 Jul 2022 18:47:47 +0000 (20:47 +0200)]
rfkill: Consider HasAirplaneMode

`ShouldShowAirplaneMode` only considers whether airplane mode
should be shown for the form factor, not whether there are
any actual kill switches available.

That's tracked in a separate property, `HasAirplaneMode`.

Take that into account for our `:show-airplane-mode` property,
so that it reflects when airplane mode should and *can* be shown.

Right now we only show airplane mode when it is enabled (and
therefore available), but this will change in the future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2385>

4 years agorfkill: Turn manager into a GObject
Florian Müllner [Mon, 18 Jul 2022 18:28:13 +0000 (20:28 +0200)]
rfkill: Turn manager into a GObject

That will allow us to use it in property bindings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2385>

4 years agorfkill: Use promise to initialize proxy
Florian Müllner [Mon, 18 Jul 2022 18:44:28 +0000 (20:44 +0200)]
rfkill: Use promise to initialize proxy

There's no good reason for waiting for the proxy to be initialized
to connect signals. In fact, connecting the signal beforehand
ensures that the handler is in place when the proxy fetches the
properties, so we don't have to call the handler explicitly.

That in turn will allow us in a follow-up to rely on the signal
parameters to only process changed properties.

To achieve that by constructing the proxy manually, and then
initialize it asynchronously in a Promise.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2385>

4 years agostatus/volume: Add device submenus
Florian Müllner [Fri, 15 Jul 2022 12:35:35 +0000 (14:35 +0200)]
status/volume: Add device submenus

In case where there are multiple in- or output devices, pulseaudio
or pipewire can pick the "wrong" one by default.

Allow users to change devices without opening sound settings by
adding a submenu to the sliders when there is more than one device.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2380>

4 years agostatus/volume: Use (dis)connectObject
Florian Müllner [Fri, 15 Jul 2022 12:30:49 +0000 (14:30 +0200)]
status/volume: Use (dis)connectObject

It makes sense to use this for all MixerControl handlers, not just
some of them.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2380>

4 years agostatus/volume: Reindent before making code changes
Florian Müllner [Fri, 15 Jul 2022 12:20:28 +0000 (14:20 +0200)]
status/volume: Reindent before making code changes

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2380>

4 years agostatus/volume: Small cleanup
Florian Müllner [Fri, 15 Jul 2022 16:15:13 +0000 (18:15 +0200)]
status/volume: Small cleanup

There is no point in splitting out a function that has one caller
and sets a single property.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2380>

4 years agostatus/volume: Document public function
Florian Müllner [Fri, 15 Jul 2022 12:23:23 +0000 (14:23 +0200)]
status/volume: Document public function

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2380>

4 years agoinputMethod: Update to set_preedit_text() API change
Carlos Garnacho [Mon, 18 Jul 2022 13:11:49 +0000 (15:11 +0200)]
inputMethod: Update to set_preedit_text() API change

Since IBus does not provide this information right away, we
so far cannot do much about providing a truthful anchor position
for the preedit text. But with the Mutter API in place it will
be up to this object to do so in the future.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2384>

4 years agolint: Transition to gjs' object spacing rule
Florian Müllner [Sun, 10 Jul 2022 00:49:53 +0000 (02:49 +0200)]
lint: Transition to gjs' object spacing rule

When gjs overhauled its coding style, it opted for disallowing
spaces around braces in object literals: `{foo: 42}`.

We opted out of that particular rule in commit 09b8e8f, primarily
because it would have been a very intrusive change with the old
style of object literals:

```js
   let oldStyle = { foo: 42,
                    bar: 23 };
```

Alas, all multi-line object literals have been transitioned to
the new style where braces go on separate lines, so they are no
longer subject to the rule one way or the other.

Nowadays the rule mostly affects destructuring, and there it
is a bit odd to apply different spacing rules to arrays and
objects:

```js
    const [foo, bar] = someArray;
    const { baz, quz } = someObject;
```

This is now the main divergence from the canonical gnome style,
and the only one where we directly contradict it.

It would be good to transition away from that, and as the rule
now only affect destructuring and single-line object literals,
we can do that on a case-by-case bases by moving the override
to the legacy configuration.

As desctructuring imports makes up a fair share of the affected
code, and those will change when moving to ES6 modules, this
seems like a good moment to start that transition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2375>

4 years agoUpdate Catalan translation
Jordi Mas [Sun, 17 Jul 2022 07:38:25 +0000 (09:38 +0200)]
Update Catalan translation

4 years agoUpdate Turkish translation
Emin Tufan Çetin [Fri, 15 Jul 2022 22:30:09 +0000 (22:30 +0000)]
Update Turkish translation

4 years agoci: Bump mutter image
Florian Müllner [Fri, 15 Jul 2022 16:58:05 +0000 (18:58 +0200)]
ci: Bump mutter image

Mutter requires a more recent wayland-protocols version now,
update to the image that provides it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2381>

4 years agotheme: Center access dialog text
Georges Basile Stavracas Neto [Tue, 12 Jul 2022 17:44:37 +0000 (14:44 -0300)]
theme: Center access dialog text

Makes the now fully visible label match the rest of the dialog's
labels.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2377>

4 years agoaccessDialog: Allow body label to wrap lines
Georges Basile Stavracas Neto [Tue, 12 Jul 2022 16:37:56 +0000 (13:37 -0300)]
accessDialog: Allow body label to wrap lines

Allow the body label of the access dialog to wrap, and avoid
ellipsizing it.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5286

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2377>

4 years agonotificationDaemon: Stop auto-dismissing on focus changes
Florian Müllner [Sun, 12 Jun 2022 16:27:34 +0000 (18:27 +0200)]
notificationDaemon: Stop auto-dismissing on focus changes

This behavior dates back all the way to the original gnome-shell
release, and it did make sense at the time:

 - we were first to make notifications persistent instead of
   closing them after a timeout; apps were therefore used to
   treat notifications as fire-and-forget instead of closing
   them when no longer relevant

 - neither web notifications not portals did exist yet, so the
   D-Bus API was only used directly, instead of as a backend
   for other APIs; as a result, focusing the app was more likely
   than not to put the source of the event that the user was
   notified about into view

Nowadays both persistent notifications and web notifications
are wide-spread, so the original reasons no longer apply.

This change helps web notifications in particular, as it reduces
the differences between XDG and portal-based implementations.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2332>

4 years agoextensions-app: Use apps.gnome.org as website
Christopher Davis [Wed, 13 Jul 2022 21:10:25 +0000 (17:10 -0400)]
extensions-app: Use apps.gnome.org as website

apps.gnome.org provides a more user-friendly overview of
the Extensions app than linking to the source code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2373>

4 years agoextensions-app: Port about to AdwAboutWindow
Christopher Davis [Sat, 9 Jul 2022 14:23:12 +0000 (10:23 -0400)]
extensions-app: Port about to AdwAboutWindow

libadwaita has a new About window, and GNOME apps are expected
to use it going forward instead of GtkAboutDialog.

Comments are meant to be detailed, and are no longer shown in the
main view. So we remove the old comments.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2373>

4 years agoUpdate Indonesian translation
Kukuh Syafaat [Tue, 12 Jul 2022 11:04:25 +0000 (11:04 +0000)]
Update Indonesian translation

4 years agoextensions: Allow updating with only extension-manager installed
Matthew Jakeman [Fri, 1 Jul 2022 11:24:08 +0000 (23:24 +1200)]
extensions: Allow updating with only extension-manager installed

GNOME Shell will only update extensions if the org.gnome.Extensions
app is present. This commit adds alternative support for
com.mattjakeman.ExtensionManager to the extension updating mechanism.

It enables updates to occur when extension-manager is the sole installed
tool on the system. When both applications are installed,
org.gnome.Extensions is preferred at all times.

Fixes #5564

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2358>

4 years agobuild: Specify check kwarg in run_command
Florian Müllner [Sun, 10 Jul 2022 13:17:19 +0000 (15:17 +0200)]
build: Specify check kwarg in run_command

Meson now warns that the default will change in a future version,
so set it explicitly to maintain the existing behavior (and shut
up the meson warning).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2350>

4 years agobuild: Use multi-line string for embedded code
Florian Müllner [Tue, 28 Jun 2022 16:59:05 +0000 (18:59 +0200)]
build: Use multi-line string for embedded code

Newer meson versions complain about newline characters in regular
strings, so switch to a proper multi-line string.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2350>

4 years agoendSessionDialog: Small cleanup
Florian Müllner [Fri, 8 Jul 2022 19:36:07 +0000 (21:36 +0200)]
endSessionDialog: Small cleanup

Array.prototype.push() returns the new number of elements, so
no need to track the number separately.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2369>

4 years agoci: Remove BUNDLES variable from nightly job
Florian Müllner [Sat, 9 Jul 2022 18:40:15 +0000 (20:40 +0200)]
ci: Remove BUNDLES variable from nightly job

The template stopped using it 3 years ago.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2374>

4 years agoBump version to 43.alpha
Florian Müllner [Sun, 10 Jul 2022 12:17:31 +0000 (14:17 +0200)]
Bump version to 43.alpha

Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2376>

4 years agosystemActions: Disable power-off if querying support fails
Florian Müllner [Sat, 9 Jul 2022 12:01:17 +0000 (14:01 +0200)]
systemActions: Disable power-off if querying support fails

Treating failure as success is weird. It's also most likely wrong,
as the most likely reason is that gnome-session isn't running.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2372>

4 years agodateMenu: Remove custom aligning of time strings in the World Clocks
Maksym Hazevych [Mon, 20 Jun 2022 14:43:09 +0000 (17:43 +0300)]
dateMenu: Remove custom aligning of time strings in the World Clocks

Since now Glib uses tabular space for aligning numbers (merged in
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2698), there is no
more need for custom aligning.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5438

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2340>

4 years agoRevert "ci: Allow flatpak job to fail"
Florian Müllner [Mon, 4 Jul 2022 19:03:24 +0000 (21:03 +0200)]
Revert "ci: Allow flatpak job to fail"

The issue with the nightly runtime has been resolved, so we
can again assume that any job failures are our fault and fail
the pipeline.

This reverts commit b6fe92aca82dea60656e38bc8657ef23ceccb08a.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2362>

4 years agoshell/app: Fix small memory leak in get_pids()
Sebastian Keller [Wed, 6 Jul 2022 17:34:23 +0000 (19:34 +0200)]
shell/app: Fix small memory leak in get_pids()

The iterator was pointing to NULL when going out of scope, leading to
autofree not clearing the list.

==300183== 32 bytes in 2 blocks are definitely lost in loss record 14,798 of 38,939
==300183==    at 0x484586F: malloc (vg_replace_malloc.c:381)
==300183==    by 0x4D7D980: g_malloc (gmem.c:127)
==300183==    by 0x4D95AB3: g_slice_alloc (gslice.c:1074)
==300183==    by 0x4D96D96: g_slist_prepend (gslist.c:282)
==300183==    by 0x487854F: shell_app_get_windows (shell-app.c:794)
==300183==    by 0x48791A1: shell_app_get_pids (shell-app.c:1201)
==300183==    by 0x488B293: shell_window_tracker_get_app_from_pid (shell-window-tracker.c:702)
==300183==    by 0x488B632: get_app_from_window_pid (shell-window-tracker.c:370)
==300183==    by 0x488B632: get_app_for_window (shell-window-tracker.c:436)
==300183==    by 0x488B632: track_window (shell-window-tracker.c:549)
==300183==    by 0x4CDBB75: g_cclosure_marshal_VOID__OBJECTv (gmarshal.c:1910)
==300183==    by 0x4CD8BE9: _g_closure_invoke_va (gclosure.c:893)
==300183==    by 0x4CF2A28: g_signal_emit_valist (gsignal.c:3406)
==300183==    by 0x4CF2C2C: g_signal_emit (gsignal.c:3553)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2367>

4 years agoci: Switch ESLint rule eqeqeq to smart mode
Evan Welsh [Tue, 5 Jul 2022 16:13:15 +0000 (12:13 -0400)]
ci: Switch ESLint rule eqeqeq to smart mode

This allows comparisons like != null and == null while still erroring
on other usages of == and !=.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2363>

4 years agoenvironment: Remove inline import of extensionUtils
Evan Welsh [Tue, 5 Jul 2022 16:11:46 +0000 (12:11 -0400)]
environment: Remove inline import of extensionUtils

The logging function cannot be asynchronous, so move the override
into main.js where ExtensionUtils can be imported at the top level.
Importing ExtensionUtils in environment.js at the top level is not
possible because it would import Main prematurely.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2363>

4 years agoextensionUtils: Add utility for setting the current extension
Evan Welsh [Tue, 5 Jul 2022 16:09:26 +0000 (12:09 -0400)]
extensionUtils: Add utility for setting the current extension

ES modules do not allow exports to be overriden, in anticipation
of the ESM port add a `setCurrentExtension` utility which will
throw if used in the shell. This is tested using a conditional
import of Main.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2363>

4 years agojs/main: Use warning log level for notifyError
Marco Trevisan (Treviño) [Mon, 2 Sep 2019 14:44:37 +0000 (16:44 +0200)]
js/main: Use warning log level for notifyError

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/697>

4 years agomain: Define a custom log writer to dump on structured messages
Marco Trevisan (Treviño) [Mon, 2 Sep 2019 15:05:27 +0000 (17:05 +0200)]
main: Define a custom log writer to dump on structured messages

Even though GNOME Shell is not explicitly using structured logging via
G_LOG_USE_STRUCTURED, GLib uses it as default since 2016 [1], and so
we're de facto using it.

As per this, if backtrace on warnings is enabled, it is ignored since the
log handler isn't used anymore, and no dump is printed.

Thus, replace the default log handlers with writer functions instead, honoring
backtrace-warnings debug string.

[1] https://gitlab.gnome.org/GNOME/glib/-/commit/fce7cfaf40b6e1e50c9140aa0397f5

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/697>

4 years agosignalTracker: Use a const variable to hold the tracked object value
Marco Trevisan (Treviño) [Wed, 6 Jul 2022 15:59:39 +0000 (17:59 +0200)]
signalTracker: Use a const variable to hold the tracked object value

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2366>

4 years agosignalTracker: Correctly guard against invalid GObject.ConnectFlags
Marco Trevisan (Treviño) [Wed, 6 Jul 2022 15:55:46 +0000 (17:55 +0200)]
signalTracker: Correctly guard against invalid GObject.ConnectFlags

We considered any ConnectFlag value major than SWAPPED as invalid, while
it's technically not fully true as we need to ensure that the passed
value is respecting the whole flags mask.
In fact, per se SWAPPED|AFTER (> SWAPPED) is a valid value (even if we
don't support the AFTER value).

But this makes the check more future-proof.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2366>

4 years agosignalTracker: Avoid getting the same owner object proto multiple times
Marco Trevisan (Treviño) [Wed, 6 Jul 2022 15:50:57 +0000 (17:50 +0200)]
signalTracker: Avoid getting the same owner object proto multiple times

While untracking an object we used to compute it's proto for each signal
we were disconnecting from, while this is not needed when we're just
iterating over all the same owner signals, so let's add few more
functions to compute an object prototype, and repeat the disconnections
in the simplest way we can.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2366>

4 years agosignalTracker: Avoid creating a temporary keys array when clearing
Marco Trevisan (Treviño) [Wed, 6 Jul 2022 15:47:14 +0000 (17:47 +0200)]
signalTracker: Avoid creating a temporary keys array when clearing

We used to create a temporary array of signal tracker keys and then to
iterate through them in order to untrack the objects, but the Map's can
be iterated directly so let's just use their native forEach.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2366>

4 years agosignalTracker: Avoid doing two maps lookups once they're initialized
Marco Trevisan (Treviño) [Wed, 6 Jul 2022 15:44:48 +0000 (17:44 +0200)]
signalTracker: Avoid doing two maps lookups once they're initialized

Avoid checking if a map contains a value, given that in the case it's
not there, get() will just return an undefined value. And only in such
case we need to set the value.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2366>

4 years agoUpdate Catalan translation
Jordi Mas [Wed, 6 Jul 2022 09:42:25 +0000 (11:42 +0200)]
Update Catalan translation

4 years agodbusServices: Refactor service utilities from fileUtils into dbusUtils
Evan Welsh [Tue, 5 Jul 2022 07:25:02 +0000 (03:25 -0400)]
dbusServices: Refactor service utilities from fileUtils into dbusUtils

To enable porting services to ECMAScript modules independently of
the shell, split DBus service utility functions into a new file,
dbusUtils.js

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2365>

4 years agoAdopt EventEmitter class instead of injecting Signal methods
Evan Welsh [Mon, 4 Jul 2022 22:30:44 +0000 (18:30 -0400)]
Adopt EventEmitter class instead of injecting Signal methods

Introduce a new class, EventEmitter, which implements signal
handling for pure JavaScript classes. EventEmitter still
utilizes GJS' addSignalMethods internally.

EventEmitter allows static typechecking to understand the
structure of event-emitting JS classes and makes creating
child classes simpler.

The name 'EventEmitter' mirrors a common name for this pattern
in Node and in JS libraries.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2043>

4 years agoci: Try falling back to stable branch before HEAD
Florian Müllner [Fri, 6 May 2022 14:45:20 +0000 (16:45 +0200)]
ci: Try falling back to stable branch before HEAD

For non-MR pipelines, we check for a matching branch or tag name
in mutter. As we use the same naming policy for stable branches
and branch at about the same time, this works generally fine for
branches.

However for tags, it is less unlikely that there is no matching
tag in mutter, in particularly late in a stable cycle when most
changes are translation updates (which are much rare in mutter
than gnome-shell).

Before falling back to main (which is doomed to fail in that case),
try to guess the correct stable branch based on the tag name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2293>

4 years agoscreenshot: Always raise UI to top when opening
Alynx Zhou [Mon, 4 Jul 2022 04:01:41 +0000 (12:01 +0800)]
screenshot: Always raise UI to top when opening

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2331>

4 years agoibusCandidatePopup: Prevent it from covering screenshot UI
Alynx Zhou [Mon, 4 Jul 2022 03:59:43 +0000 (11:59 +0800)]
ibusCandidatePopup: Prevent it from covering screenshot UI

If we only raise screenshot UI to top, ibusCandidatePopup can still
cover screenshot UI because each time ibusCandidatePopup updates it's
visibility it will raise it to top and this also happens if we open
screenshot UI via keybinding. This commit fixes it by only raising it
above keyboardBox, because keyboardBox is above all entries in modal
dialogs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2331>

4 years agoibusCandidatePopup: Init it as a top chrome
Alynx Zhou [Mon, 4 Jul 2022 03:57:36 +0000 (11:57 +0800)]
ibusCandidatePopup: Init it as a top chrome

ibusCandidatePopup actually works as a top chrome because it always
raises itself above top_window_group when updating visibility, so just
initing it as a top chrome instead of initing it below top_window_group.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2331>

4 years agoUpdate Czech translation
Vojtěch Perník [Mon, 4 Jul 2022 13:07:52 +0000 (13:07 +0000)]
Update Czech translation

4 years agoUpdate Russian translation
Aleksandr Melman [Mon, 4 Jul 2022 12:41:16 +0000 (12:41 +0000)]
Update Russian translation

4 years agokeyboard: Fix updating suggestions visibility
Florian Müllner [Sun, 3 Jul 2022 14:44:39 +0000 (16:44 +0200)]
keyboard: Fix updating suggestions visibility

Commit 237ba24dbeae added corresponding API to the keyboard actor,
but ended up calling it on the KeyboardManager.

Add the expected method to KeyboardManager that forwards the request
to the keyboard.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5630

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2359>

4 years agolayout: Force size of overviewGroup
Florian Müllner [Thu, 30 Jun 2022 13:36:47 +0000 (15:36 +0200)]
layout: Force size of overviewGroup

The overviewGroup's size is currently determined by the coverPane
actor. That actor is only shown during transitions, so we rely on
ClutterFixedLayout including hidden children in its size request.

That odd behavior is about to change, so we need to make sure the
overview still requests the correct size.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2351>

4 years agolayout: Use constraint to resize screenShieldGroup
Florian Müllner [Thu, 30 Jun 2022 13:29:55 +0000 (15:29 +0200)]
layout: Use constraint to resize screenShieldGroup

We want the actor to always fill the entire uiGroup. It seems
better and simpler to express that with a contraint than resizing
it explicitly on every monitor change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2351>

4 years agoibusManager: Avoid double fork triggering parent death in ibus
oreo639 [Mon, 27 Jun 2022 20:38:55 +0000 (13:38 -0700)]
ibusManager: Avoid double fork triggering parent death in ibus

Use DO_NOT_REAP_CHILD to avoid a double-fork internally since ibus-daemon
refuses to start with init as its parent.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2345>

4 years agoibusManager: Pass on envrionment variables to ibus-daemon
oreo639 [Mon, 27 Jun 2022 00:56:48 +0000 (17:56 -0700)]
ibusManager: Pass on envrionment variables to ibus-daemon

Previously only DISPLAY was being passed on to ibus, which results in issues
with missing the WAYLAND_DISPLAY or the DBUS_SESSION_BUS_ADDRESS environemnt
variables for example.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2345>

4 years agoibusManager: Don't use GNOME_SETUP_DISPLAY
oreo639 [Fri, 1 Jul 2022 19:16:56 +0000 (12:16 -0700)]
ibusManager: Don't use GNOME_SETUP_DISPLAY

GNOME_SETUP_DISPLAY is only necessary when using xwayland on demand,
which is only supported on systemd, in which case you should consider
using the user service provided by ibus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2345>

4 years agoosk-layouts: Use AZERTY in Belgian layout
Evert Provoost [Wed, 15 Jun 2022 21:45:33 +0000 (21:45 +0000)]
osk-layouts: Use AZERTY in Belgian layout

The regular `be` layout uses AZERTY like `fr`, so it makes sense
to follow that in the on-screen layout instead of copying the
Dutch layout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2336>

4 years agowindowManager: Handle window dimming animation getting cancelled
Jonas Dreßler [Thu, 30 Jun 2022 07:40:51 +0000 (09:40 +0200)]
windowManager: Handle window dimming animation getting cancelled

When a window with a modal dialog gets minimized and at the same time
the dialog is closed, the WindowDimmer undim animation starts and gets
cancelled when the minimize animation is done, because that unmaps the
window actor.

In this case we want ensure the dimming effect still goes into a
proper state instead of being stuck mid-animation, so listen to
onStopped instead of onComplete for syncing state of the window dimmer.

While at it, clean things up a little and move the check for the
attach-modal-dialogs pref inside the _syncEnabled() function.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5581

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2349>

4 years agoRevert "windowManager: Undim parent when minimizing attached modal"
Jonas Dreßler [Wed, 29 Jun 2022 17:56:25 +0000 (19:56 +0200)]
Revert "windowManager: Undim parent when minimizing attached modal"

This reverts commit 78a7cc18360e2330c8d45502670d01e22d5128f2.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2349>

4 years agoci: Allow flatpak job to fail
Florian Müllner [Sat, 2 Jul 2022 00:01:56 +0000 (02:01 +0200)]
ci: Allow flatpak job to fail

The nightly runtime was rebased on a newer freedesktop base, and
all hell broke loose. Unblock our CI by temporarily allowing the
flatpak job to fail.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2355>

4 years agoibusCandidatePopup: Set OSK candidates list visibility correctly
Carlos Garnacho [Wed, 29 Jun 2022 11:06:07 +0000 (13:06 +0200)]
ibusCandidatePopup: Set OSK candidates list visibility correctly

Right now, we don't pay much attention to visibility hints from IBus
about the candidates list for the OSK suggestions bar. Since some
IMs rely on this visibility being honored, do that.

To fix this, the visibility hints for the lookup table are now
propagated to the keyboard, so the Suggestions actor hides its
internal candidate buttons. Since the Suggestions actor gets its
minimum height from CSS, this does not result in OSK size jumps.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5601
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2347>